JpaRepository Interface এর মূল মেথডগুলো (save, findById, findAll, delete)

Java Technologies - স্প্রিং বুট জেপিএ (Spring Boot JPA) - Spring Data JPA এর বেসিক ধারণা
292

Spring Data JPA একটি শক্তিশালী ফিচার যা JPA (Java Persistence API)-এর উপর ভিত্তি করে ডাটাবেসের সঙ্গে কাজ করা সহজ করে তোলে। JpaRepository হলো Spring Data JPA-র একটি গুরুত্বপূর্ণ ইন্টারফেস, যা বিভিন্ন ডেটাবেস অপারেশন করতে সাহায্য করে। এই ইন্টারফেসটি সাধারণ CRUD (Create, Read, Update, Delete) অপারেশনগুলো দ্রুত এবং সহজভাবে সম্পাদন করার জন্য প্রি-ডিফাইন্ড মেথডগুলো সরবরাহ করে।

এখানে JpaRepository Interface এর মূল মেথডগুলো নিয়ে আলোচনা করা হলো, যেমন save(), findById(), findAll(), এবং delete()। এই মেথডগুলোর মাধ্যমে ডেটাবেস অপারেশন খুব সহজে সম্পাদিত হয়।


1. save() মেথড

save() মেথড ব্যবহার করে নতুন ডেটা তৈরি (insert) অথবা বিদ্যমান ডেটা আপডেট (update) করা যায়। এটি একটি Entity অবজেক্টকে ডাটাবেসে সেভ করার জন্য ব্যবহৃত হয়। যদি Entity-এর প্রাথমিক কী (primary key) null থাকে, তবে এটি নতুন রেকর্ড তৈরি করবে, আর যদি প্রাথমিক কী নির্দিষ্ট থাকে, তবে এটি আপডেট করবে।

উদাহরণ:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
    // No additional methods needed
}
@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public Product saveProduct(Product product) {
        return productRepository.save(product);  // Save or update
    }
}

এখানে, productRepository.save(product) ব্যবহার করে একটি নতুন Product ইনস্ট্যান্স ডাটাবেসে সেভ করা হয়েছে। যদি product Entity-এর id already exists, তবে এটি আপডেট হবে।


2. findById() মেথড

findById() মেথড একটি নির্দিষ্ট প্রাথমিক কী (primary key) দ্বারা ডেটা খুঁজে পেতে ব্যবহৃত হয়। এটি একটি Optional অবজেক্ট রিটার্ন করে, যাতে এটি null না ফেরত দিয়ে, রেজাল্ট পাওয়া না গেলে Optional.empty() রিটার্ন করবে।

উদাহরণ:

public Product getProductById(Long id) {
    Optional<Product> product = productRepository.findById(id);
    if (product.isPresent()) {
        return product.get();
    } else {
        throw new ProductNotFoundException("Product not found for ID: " + id);
    }
}

এখানে, findById() একটি Optional<Product> রিটার্ন করে। আপনি isPresent() ব্যবহার করে চেক করতে পারেন যে ফলাফল পাওয়া গেছে কিনা।


3. findAll() মেথড

findAll() মেথড সমস্ত রেকর্ড বের করার জন্য ব্যবহৃত হয়। এটি ডাটাবেসের সমস্ত রেকর্ড সংগ্রহ করে এবং একটি List বা Iterable আকারে রিটার্ন করে।

উদাহরণ:

public List<Product> getAllProducts() {
    return productRepository.findAll();  // Returns all products
}

এখানে, findAll() সমস্ত Product রেকর্ডের একটি তালিকা ফেরত দেয়। আপনি চাইলে findAll() এর সঙ্গে পেজিনেশনও ব্যবহার করতে পারেন:

public Page<Product> getProductsWithPagination(Pageable pageable) {
    return productRepository.findAll(pageable);  // Pagination supported
}

এখানে Pageable এর মাধ্যমে পেজিনেশন সাপোর্ট করা হয়েছে, যা ডেটা বড় হলে ব্যবহৃত হয়।


4. delete() মেথড

delete() মেথড একটি Entity অবজেক্ট বা একটি নির্দিষ্ট প্রাথমিক কী (primary key) দ্বারা রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়। এটি ডাটাবেস থেকে রেকর্ড সম্পূর্ণভাবে মুছে দেয়।

উদাহরণ 1: Entity অবজেক্ট দ্বারা ডিলিট

public void deleteProduct(Product product) {
    productRepository.delete(product);  // Deletes the product
}

উদাহরণ 2: ID দ্বারা ডিলিট

public void deleteProductById(Long id) {
    productRepository.deleteById(id);  // Deletes the product by id
}

delete() বা deleteById() মেথড ব্যবহার করে আপনি Product Entity-এর একটি রেকর্ড মুছে ফেলতে পারেন।


সারাংশ

Spring Data JPA এর JpaRepository ইন্টারফেসের মূল মেথডগুলো ডেটাবেস অপারেশনকে সহজ করে তোলে:

  1. save(): নতুন Bean তৈরি বা বিদ্যমান Bean আপডেট করার জন্য ব্যবহৃত হয়।
  2. findById(): নির্দিষ্ট id অনুসারে ডেটা খুঁজে বের করার জন্য ব্যবহৃত হয়। এটি Optional রিটার্ন করে।
  3. findAll(): সমস্ত রেকর্ড নিয়ে আসে।
  4. delete(): একটি Bean অথবা id এর মাধ্যমে ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।

এই মেথডগুলোর মাধ্যমে Spring Data JPA-এ খুব সহজেই CRUD অপারেশন করা যায়, যা Spring অ্যাপ্লিকেশনগুলিকে দ্রুত ডেভেলপ করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...